Lịch sử Hệ_thống_X_Window

Các phần mềm tiền bối của X

Trước khi X ra đời, nhiều hệ thống hiển thị đồ họa bitmap đã tồn tại, chẳng hạn như Alto (1973) và Star (1981) của hãng Xerox, Lisa (1983) và Macintosh (1984) của hãng Apple. Trong thế giới Unix thì có Andrew Project (1982) và thiết bị đầu cuối Blit của Rob Pike (1984).

X lấy tên của mình là phần mềm kế tục của một hệ thống cửa sổ đã có từ trước năm 1983 gọi là W (trong bảng ký tự Latin, chữ X đứng ngay sau chữ W). Hệ thống W window (W Window System) hoạt động dưới hệ điều hành V.

Nguồn gốc và những phát triển ở thời kỳ đầu

Ý tưởng đầu tiên về X bắt nguồn từ MIT vào năm 1984 do sự cộng tác giữa Jim Gettys (từ Dự án Athena) và Bob Scheifler (từ Phòng thí nghiệm Khoa học Máy tính MIT). Lúc đó, Scheifler đang cần có một môi trường hiển thị có thể dùng được để soát lỗi (debug) hệ thống Argus. Dự án Athena (một dự án chung­ giữa DEC (Digital Equipment Corporation), MIT, và IBM nhằm mục đích tạo điều kiện cho tất cả các sinh viên khả năng truy cập dễ dàng các tài nguyên máy tính) cần một hệ thống đồ họa không phụ thuộc hệ nền (platform-independent) - có thể chạy trên các hệ điều hành và các cấu trúc máy khác nhau - để có thể liên kết các hệ thống đa dạng và không đồng nhất của nhiều nhà cung cấp. Hệ thống cửa sổ, lúc đó được phát triển bởi dự án Andrew tại Đại học Carnegie Mellon, không cấp giấy phép ra ngoài và tại thời điểm này không có một phần mềm nào khác có thể thay thế.

Dự án này giải quyết khó khăn trên bằng cách tạo ra một giao thức vừa có thể chạy các trình ứng đụng tại địa phương, vừa có thể sử dụng tài nguyên từ các nguồn ở xa. Vào khoảng giữa năm 1983, một bản chuyển mã đầu tiên của W cho Unix chạy chậm gấp 5 lần so với khi nó chạy trên hệ điều hành V. Đến năm 1984, Scheifler thay thế giao thức đồng bộ của W bằng giao thức không đồng bộ, và thay các danh sách hiển thị (display list - danh sách các lệnh vẽ hình đồ họa, hoặc các hình đồ họa dùng thường xuyên, để có thể dùng lại nếu cần mà không cần phải tính toán) bằng chế độ đồ họa hiển thị trực tiếp (immediate mode graphics - một chế độ trong kỹ thuật đồ họa vi tính cho phép trình ứng dụng thao tác và xử lý dữ liệu đồ họa trực tiếp trong bộ nhớ) để tạo nên phiên bản 1 của X. X trở thành môi trường hệ thống cửa sổ đầu tiên thực sự không phụ thuộc phần cứng và không phụ thuộc nhà cung cấp.

Scheifler, GettysRon Newman tập trung vào việc và X tiến triển một cách nhanh chóng. Vào tháng 1 năm 1985, họ đã cho phát hành phiên bản 6. Khi đó, DEC đang chuẩn bị cho ra trị trường máy trạm Ultrix đầu tiên của mình, DEC phán đoán rằng X sẽ là hệ thống cửa sổ duy nhất có khả năng có sẵn kịp thời gian để sử dụng. Các kĩ sư DEC đã chuyển mã X6 (X phiên bản 6) sang cho hiển thị QVSS của DEC trên máy MicroVAX.

Trong quý 2 năm 1985, X đã được trang bị những hỗ trợ hiển thị màu sắc để hoạt động trên máy VAXstation-II/GPX của DEC, lập nên phiên bản 9 của X. Mặc dù MIT lúc này đã cấp giấy phép phát hành X6 cho một số nhóm bên ngoài với một lệ phí, họ quyết định cấp giấy phép cho X9 và các phiên bản trong tương lai dưới loại giấy phép mà sau này được gọi là giấy phép MIT. Phiên bản 9 của X (X9) ra đời vào tháng 9 năm 1985.

Một nhóm từ Đại học Brown chuyển mã phiên bản 9 của X cho máy IBM RT/PC (RISC Technology Personal Computer - Máy tính cá nhân Công nghệ RISC), song những vấn đề trong việc đọc dữ liệu trên RT đã buộc họ phải thay đổi giao thức một cách không tương thích, dẫn tới phiên bản 10 vào cuối năm 1985. Đến năm 1986, các tổ chức bên ngoài bắt đầu muốn lấy X. X10R2 đã được phát hành vào tháng 1 năm 1986, tiếp theo là X10R3 vào tháng 2 năm 1986. X10R3 trở thành phiên bản đầu tiên được triển khai rộng rãi khi hai công ty DECHewlett-Packard phát hành các sản phẩm dựa trên phiên bản này. Các nhóm khác cũng chuyển mã X10 cho máy tính Apollo và máy trạm Sun, thậm chí cho cả máy IBM PC/AT. Ứng dụng thương mại đầu tiên của X (một hệ thống Thiết kế kỹ thuật cơ khí bằng máy tính (mechanical computer-aided engineering) chạy trên máy VAX và hiển thị trên PC với trình phục vụ X) đã được trình diễn tại triển lãm thương mại Autofact. Phiên bản cuối của X10, X10R4 ra đời vào tháng 12 năm 1986.

Mặc dù X10 cung cấp nhiều chức năng hay và mạnh, nhưng người ta đã thấy rằng đáng ra giao thức X đã có thể được thiết kế lại với tính trung lập phần cứng (hardware-neutral) cao hơn, trước khi nó được triển khai quá rộng rãi; nhưng một mình MIT không có đủ tài nguyên cho một cuộc thiết kế lại hoàn toàn như vậy. Tại thời điểm đó, Phòng thí nghiệm phần mềm miền Tây (Western Software Laboratory - viết tắt là WSL) của DEC đang bận với nhiều dự án. Smokey Wallace, lúc đó đang làm việc tại phòng thí nghiệm trên và Jim Gettys đề xuất rằng DEC WSL sẽ xây dựng X11 và làm cho nó trở thành phần mềm tự do sẵn có cho người dùng, dưới cùng các điều khoản về giấy phép tương tự như X9 và X10. Công trình được bắt đầu từ tháng 5 năm 1986, và đến tháng 8 thì giao thức đã được hoàn tất. Thử nghiệm Alpha của phần mềm được bắt đầu vào tháng 2 năm 1987, thử nghiệm Beta được bắt đầu vào tháng 5, và cuối cùng X11 được phát hành ngày 15 tháng 9 năm 1987.

Công trình thiết kế giao thức X11, được chỉ đạo bởi Scheifler, đã được bàn luận rất sôi nổi trên các danh sách thư mở trên mạng Internet mà lúc đó vẫn còn non trẻ. Do đó, X đại diện cho những dự án phần mềm tự do quy mô lớn đầu tiên.

MIT X Consortium và tập đoàn X Consortium

CDE trên UNIX (Solaris 8)

Năm 1987, khi sự thành công của X càng ngày càng trở nên rõ ràng, MIT có ý định từ bỏ cương vị quản lý X, song trong kỳ họp với 9 nhà cung cấp vào tháng 6 năm 1987, họ đã nói với MIT rằng, để giữ cho X khỏi rơi vào tình trạng bị phân tán thành nhiều các phiên bản lẻ tẻ, không thống nhất trên thị trường, cần có một tổ chức trung lập đứng ra quản lý X. Do kiến nghị này, tháng 1 năm 1988, hội đồng MIT X Consortium đã được thành lập với danh nghĩa một tổ chức phi lợi nhuận của các nhà cung cấp với Scheifler là giám đốc, mục đích là định hướng các [ phát triển trong tương lai của X trong bầu không khí trung lập, vì quyền lợi của cả thương mại lẫn giáo dục. Tháng 1 năm 1988, Jim Fulton tham gia vào tổ chức và tiếp theo là Keith Packard vào tháng 3 năm 1988. Hai người tham gia với vai trò các nhà phát triển cao cấp, Jim tập trung vào Xlib, phông chữ, các trình quản lý cửa sổ, và các bộ công cụ, còn Keith cài đặt lại trình phục vụ. Cuối năm đó, Donna Converse và Chris Peterson cũng gia nhập, họ tập trung vào bộ công cụ và các bộ thành tố điều khiển, phối hợp chặt chẽ với Ralph Swick thuộc dự án Athena của MIT. MIT X Consortium đã tạo nhiều phiên bản quan trọng cho X11, bản đầu tiên (X11R2) vào tháng 2 năm 1988.

DECwindows CDE trên OpenVMS 7.3-1

Vào năm 1993, tập đoàn X Consortium (một tổ chức phi lợi nhuận) được thành lập với tiền thân là tổ chức MIT X Consortium. Tổ chức này phát hành X11R6 vào 16 tháng 5 năm 1994. Vào năm 1995, nó tiếp nhận quyền quản lý bộ công cụ Motif và của Môi trường mặt bàn chung cho các hệ thống Unix. Cuối năm 1996, sau khi cho ra bản cuối cùng X11R6.3, X Consortium đã giải thể, để lại một di sản là ảnh hưởng thương mại ngày càng trong sự phát triển.

Open Group

Đến giữa năm 1995, X Consortium trao quyền quản lý X cho Open Group (Nhóm Mở), một nhóm các nhà cung cấp hình thành từ đầu 1996 do sự sáp nhập của OSF (Open Software Foundation) và X/Open.

Đầu năm 1998, Open Group đã phát hành X11R6.4. Trong khi tìm cách đảm bảo nguồn tài chính cho việc tiếp tục phát triển X , Open Group đã tách X11R6.4 ra khỏi các điều khoản cấp phép tự do truyền thống. Những điều khoản mới đã có thể ngăn cản việc X được thu nhận bởi các dự án (như XFree86) và thậm chí ngay cả bởi một số nhà cung cấp thương mại. Sau khi XFree86 đe dọa sẽ phân nhánh X , tháng 9 năm 1998, Open Group đã buộc phải cấp phép X11R6.4 lại theo giấy phép truyền thống. Phiên bản cuối cùng của Open Group là X11R6.4 bản điều chỉnh 3.

X.Org và XFree86

XFree86 ra đời vào năm 1992, bắt nguồn từ trình phục vụ X386 cho máy PC tương thích IBM phiên bản X11R5 năm 1991. Phiên bản này được viết bởi Thomas Roell và Mark W. Snitily và sau đó được công ty Snitily Graphics Consulting Services tặng cho MIT X Consortium. XFree86 tiến triển theo thời gian, từ chỉ chỗ chỉ là một bản chuyển mã của X cho đến vị trí của một bản cài đặt đứng hàng đầu nổi tiếng nhất và là một quản lý de facto của việc phát triển X .

Tháng 5 năm 1999, tổ chức Open Group thành lập X.Org. X.Org giám sát những phiên bản phát hành của X, từ phiên bản X11R6.5.1 trở đi. Sự phát triển của X tại thời điểm này đã trở nên suy tàn . Kể từ khi X Consortium giải thể, hầu hết các cải tiến kỹ thuật đều đã được thực hiện trong dự án XFree86. . Năm 1999, do sự khuyến khích của nhiều công ty phần cứng quan tâm đến việc sử dụng XFree86 trên hệ điều hành Linux và quan tâm đến vị thế của XFree86 là phiên bản nổi tiếng nhất, nhóm XFree86 đã gia nhập X.Org, với cương vị là thành viên danh dự (làm việc không có lương).

Đến năm 2003, trong khi danh tiếng của Linux (cơ sở được cài đặt của X) tăng vọt, thì X.Org, tuy vẫn tồn tại, nhưng lại hầu như không hoạt động , và tất cả những nỗ lực phát triển hầu như chỉ xảy ra bên trong XFree86 mà thôi. Tuy vậy, bất đồng đáng kể đã xảy ra trong nội bộ XFree86. Đề án XFree86 bị ảnh hưởng nặng nề bởi mô hình phát triển quá theo kiểu mô hình nhà thờ và tình trạng các lập trình viên không thể truy cập vào CVS (Concurrent Versions System) - một cơ sở dữ liệu lưu trữ các tập mã nguồn cùng chi tiết về những thay đổi của bảng mã nguồn đó - và thực hiện lệnh commit để cập nhật những thay đổi trong bảng mã nguồn của mình , và các nhà cung cấp phải bảo trì một số lượng khổng lồ các bộ điều chỉnh . Tháng 3 năm 2003 tổ chức XFree86 đã khai trừ Keith Packard, người đã tham gia XFree86 sau khi X Consortium giải thể.

X.Org và XFree86 bắt đầu thảo luận về việc tái tổ chức cho phù hợp với việc hướng dẫn sự phát triển của X một cách thích đáng . Từ muộn nhất là năm 2000, Jim Gettys đã cố gắng thuyết phục mọi người về một mô hình phát triển mở . Gettys, Packard, và một vài người nữa đã bắt đầu thảo luận một cách chi tiết các yêu cầu của một hệ thống quản lý hiệu quả (effective governance) cho X đối với sự phát triển mở của nó.

Cuối cùng, vào tháng 2 năm 2004, trong âm hưởng của cuộc tranh cãi về giấy phép của X11R6.4 đã nói ở trên đây, XFree86 đã phát hành phiên bản 4.4 dưới một giấy phép hạn chế hơn trước. Những điều khoản hạn chế này làm cho nhiều đề án đang phụ thuộc vào X cảm thấy không thể chấp nhận được . Những điều khoản mới được thêm vào dựa trên những điều khoản về quảng cáo của giấy phép BSD nguyên trước đây (Berkeley Software Distribution license - Giấy phép phân phối phần mềm của Berkeley), và bị Tổ chức phần mềm tự do (Free Software Foundation) và Debian xem là không tương thích với Giấy phép công cộng GNU (GNU General Public License) . Các nhóm khác cũng nhìn nhận rằng những điều khoản hạn chế tiếp theo có tính chất đi ngược lại với tinh thần ban đầu của X (chẳng hạn, OpenBSD đã đe dọa phân nhánh). Vấn đề về giấy phép, cộng với những khó khăn trong việc cập nhật các sửa đổi, làm cho nhiều người cảm thấy rằng thời điểm phải phân nhánh đã chín muồi .

Sáng hội X.Org

Trong Đầu năm 2004 nhiều người từ X.Org và freedesktop.org đã nhóm lại và sáng lập ra Sáng hội X.Org (X.Org Foundation). Tổ chức Open Group trao quyền quản lý tên miền x.org cho hội này. Sự kiện này đã đánh dấu một sự thay đổi căn bản trong việc quản trị X. Trong khi những người quản lý của X từ năm 1988 (bao gồm cả Sáng hội X.Org trước đó) vốn là những tổ chức của các nhà cung cấp, thì Sáng hội X.Org này lại được sự chỉ đạo bởi các nhà phát triển phần mềm, sử dụng sự phát triển cộng đồng dựa trên mô hình chợ Bazaar. Mô hình phát triển này dựa trên sự tham dự của cộng đồng bên ngoài. Tư cách hội viên được mở cho từng cá nhân, và kết hợp cả tư cách hội viên dưới hình thức nhà tài trợ. Một vài tập đoàn lớn như Hewlett-PackardSun Microsystems hiện đang tài trợ cho Sáng hội X.Org.

Sáng hội giữ vai trò giám sát đối với sự phát triển của X: các quyết định kỹ thuật được đưa ra trên cơ sở thành tích bằng cách đạt được sự đồng thuận tương đối giữa các thành viên cộng đồng. Ban giám đốc không đưa ra các quyết định kỹ thuật; theo nghĩa đó, nó đã được thực hiện theo hình mẫu của Tổ chức GNOME - tổ chức gồm những người không can thiệp về mặt kỹ thuật. Sáng hội không thuê một nhà phát triển phần mềm nào.

Tháng 4 năm 2004, Sáng hội này đã cho phát hành X11R6.7, tức X.Org Server, dựa trên XFree86 4.4RC2 với các thay đổi được sáp nhập từ phiên bản X11R6.6. Gettys và Packard đã lấy phiên bản cuối cùng của XFree86 dưới giấy phép cũ, và đã đưa nhiều nhà phát triển cũ của XFree86 vào trong nhóm lãnh đạo bằng cách nhấn mạnh quan điểm về mô hình phát triển mở và việc gìn giữ tính tương thích với GPL.

X11R6.8 được phát hành vào tháng 9 năm 2004. Phiên bản này được bổ sung nhiều tính năng quan trọng, trong đó bao gồm sự hỗ trợ bước đầu đối với các cửa sổ trong suốt, cùng nhiều hiệu ứng hình ảnh tinh xảo khác, các phần mềm dùng để khuếch đại màn hình (magnifiers), các phần mềm dùng để tạo hình đại diện thu nhỏ (thumbnailers), và các tiện ích dùng để tích hợp với các hệ thống hiển thị 3D ấn tượng, như Croquet ProjectProject Looking Glass của Sun. Các chương trình ứng dụng bên ngoài (được gọi là các chương trình quản lý tạo hình (compositing managers) cung cấp thể thức và quy cách cho hình ảnh bề ngoài của giao diện người dùng.

Tài liệu tham khảo

WikiPedia: Hệ_thống_X_Window http://www.cat.org.au/maffew/cat/xfree-dawes.html http://www.apple.com/macosx/features/x11/ http://ptlo.blogspot.com/2005/12/gnome-vs-kde-hist... http://cbbrowne.com/info/x11r6.4.html http://cbbrowne.com/info/xbloat.html http://www.computerworld.com/softwaretopics/softwa... http://cygwin.com/ml/cygwin-xfree/2003-10/msg00328... http://www.dwheeler.com/essays/gpl-compatible.html... http://h30097.www3.hp.com/docs/dev_doc/DOCUMENTATI... http://keithp.com/~keithp/talks/Xarchitecture/Talk...